DNS Internals
8. What is the Domain Name System (DNS)?
DNS (Domain Name System) হলো ইন্টারনেটের একটি ডিস্ট্রিবিউটেড ডেটাবেস সিস্টেম, যা মানুষের পড়ার উপযোগী ডোমেইন নেমকে (যেমন: google.com) মেশিনের পড়ার উপযোগী IP অ্যাড্রেসে (যেমন: 142.250.190.46) রূপান্তর করে। সহজ কথায়, এটি ইন্টারনেট ের ডিরেক্টরি হিসেবে কাজ করে।
🤔 Why was DNS created instead of using IP addresses directly?
মানুষের মস্তিষ্কের পক্ষে হাজার হাজার ওয়েবসাইটের জটিল সংখ্যার IP অ্যাড্রেস মুখস্থ রাখা প্রায় অসম্ভব। কিন্তু কোনো ওয়েবসাইটের নাম (যেমন facebook.com) মনে রাখা খুব সহজ। মানুষের এই সুবিধার জন্যই IP অ্যাড্রেসের বিকল্প হিসেবে ডোমেইন নেম এবং এদের রেজল্যুশনের জন্য DNS সিস্টেম তৈরি করা হয়েছে।
⚖️ How does DNS help with load balancing and fault tolerance?
DNS শুধুমাত্র নামকে আইপিতেই রূপান্তর করে না, এটি ট্রাফিক ম্যানেজমেন্টেও সাহায্য করে:
- Load Balancing (Round-Robin DNS): একটি ডোমেইনের বিপরীতে একাধিক IP অ্যাড্রেস অ্যাসাইন করা যায়। যখন ইউজাররা ওই ডোমেইনে রিকোয়েস্ট পাঠায়, DNS তখন পর্যায়ক্রমে (round-robin) ভিন্ন ভিন্ন IP রিটার্ন করে, ফলে ট্রাফিক একাধিক সার্ভারে ভাগ হয়ে যায়।
- Fault Tolerance/Failover: যদি কোনো সার্ভার ডাউন বা অফলাইন হয়ে যায়, ব্যাকএন্ড ডেভেলপাররা DNS রেকর্ড আপডেট করে ট্রাফিক অন্য একটি সুস্থ (healthy) সার্ভারের IP-তে রিডাইরেক্ট করে দিতে পারেন।
📂 What is the difference between a DNS zone and a DNS record?
| বৈশিষ্ট্য | 📝 DNS Record | 🗂️ DNS Zone |
|---|---|---|
| সংজ্ঞা | এটি হলো DNS ডেটাবেসের একটি সিঙ্গেল এন্ট্রি বা তথ্য (যেমন A রেকর্ড, MX রেকর্ড)। | এটি হলো একটি ডোমেইন স্পেসের অং শ, যার পরিচালনার দায়িত্ব নির্দিষ্ট কোনো অ্যাডমিনিস্ট্রেটরের কাছে থাকে। |
| কাজ | এটি নির্দিষ্ট একটি ডোমেইনের কোনো একটি প্রপার্টি ডিফাইন করে। | একটি DNS Zone-এর ভেতরে ওই ডোমেইন এবং তার সাবডোমেইনের সমস্ত DNS Record গুলোকে একটি ফাইলে (Zone File) সংগঠিত রাখা হয়। |
📖 Why is DNS often called the "Phonebook of the Internet"?
টেলিফোন ডিরেক্টরিতে যেমন মানুষের নামের পাশে তাদের ফোন নম্বর লেখা থাকে, ঠিক তেমনি DNS সার্ভারে ওয়েবসাইটের ডোমেইন নেমের পাশে তাদের IP অ্যাড্রেস লেখা থাকে। আপনি নাম খুঁজলে DNS আপনাকে রিয়েল আইপি অ্যাড্রেস বা নম্বরটা বের করে দেয়। এ কারণেই একে ইন্টারনেটের ফোনবুক বলা হয়।
🔄 What is the difference between forward and reverse DNS lookup?
- ▶️ Forward DNS Lookup: ডোমেইন নেম (যেমন
google.com) থেকে IP অ্যাড্রেস বের করার প্রক্রিয়াকে ফরোয়ার্ড লুকআপ বলে। এটিই সবচেয়ে বেশি ব্যবহৃত হয়। - ◀️ Reverse DNS Lookup (rDNS): IP অ্যাড্রেস (যেমন
142.250.190.46) থেকে সেই আইপিটি কোন ডোমেইনের সাথে যুক্ত, তা বের করার প্রক্রিয়াকে রিভার্স লুকআপ বলে। এটি স্প্যাম চেকিং এবং ট্রাবলশুটিং-এর কাজে ব্যবহৃত হয়।
9. How does DNS resolve domain names to IP addresses?
DNS রেজল্যুশন ফ্লো (Browser Cache -> Resolver -> Root -> TLD -> Authoritative -> Cache)
Step-by-step DNS Resolution
-
Browser -> Local Cache
প্রথমে OS বা ব্রাউজারের ক্যাশে খোঁজে। আগে ভিজিট করা থাকলে এখানেই পাওয়া যায়, বাকি ধাপের দরকার হয় না। -
Recursive Resolver
না পেলে ISP-এর বা পাবলিক রিজলভারের (যেমন Google-এর8.8.8.8) কাছে যায়। এটি পুরো চেইনটি পরিচালনা করে। -
Root Server -> TLD ঠিকানা
রিজলভার Root Server-কে জিজ্ঞেস করে। Root Server জানে নাexample.com-এর IP, কিন্তু জানে.com-এর TLD সার্ভার কোথায়, সেটি দিয়ে দেয়। -
TLD Server -> Authoritative ঠিকানা
.comTLD সার্ভার জানেexample.comকোন Authoritative Server ব্যবহার করে, সেটির ঠিকানা দেয়। -
Authoritative Server -> চূড়ান্ত IP
এটিই আসল উত্তর দেয়। Domain-এর DNS রেকর্ড এখানেই থাকে। -
ক্যাশ করা হয়
পুরো উত্তরটি TTL (Time to Live) সময়ের জন্য ক্যাশে সংরক্ষিত হয়, যাতে পরের বার আবার পুরো চেইন না ঘুরতে হয়।
Tip: বাস্তবে পুরো প্রক্রিয়াটি মাত্র কয়েক মিলিসেকেন্ডে শেষ হয়।
🏢 What is the difference between an authoritative DNS server and a recursive resolver?
| সার্ভার | 🛡️ Authoritative DNS Server | 🕵️♂️ Recursive Resolver |
|---|---|---|
| সংজ্ঞা | এটি হলো ডেটাবেসের সেই অরিজিনাল সার্ভার, যার কাছে নির্দিষ্ট ডোমেইনটির জন্য সর্বশেষ এবং সঠিক DNS রেকর্ডগুলো জমা থাকে। এটিই চূড়ান্ত উত্তর দেয়। | এটি হলো ইউজারের ডিভাইস (বা ISP) থেকে পাঠানো রিকোয়েস্ট গ্রহণকারী সার্ভার। |
| কাজের ধরন | এর কাছে সব রেকর্ড সেভ করা থাকে। | এর নিজের কাছ ে সব উত্তর থাকে না, বরং ইউজারের হয়ে এটি অন্যান্য সার্ভারকে পর্যায়ক্রমে প্রশ্ন করে আইপি অ্যাড্রেসটি খুঁজে এনে ইউজারকে দেয়। |
🕵️♂️ What is the role of a DNS resolver in the DNS resolution process?
DNS Resolver (বা Recursive Resolver) হলো ক্লায়েন্ট এবং DNS ইনফ্রাস্ট্রাকচারের মধ্যকার মধ্যস্থতাকারী (Middleman)। পুরো DNS রেজোলিউশন প্রক্রিয়ায় এটিই সবচেয়ে সক্রিয় ভূমিকা পালন করে।
যখন আপনি ব্রাউজারে www.example.com টাইপ করেন:
১. ব্রাউজার শুধু Resolver-কে চেনে
ব্রাউজার সরাসরি কোনো Root বা TLD সার্ভারের সঙ্গে কথা বলে না — শুধু Resolver-এর কাছে প্রশ্ন পাঠায়।
২. Resolver নিজে তদন্ত শুরু করে
Resolver তখন একে একে তিনটি জায়গায় যায়:
| ধাপ | কা র কাছে যায় | কী জানতে চায় |
|---|---|---|
| ১ | Root Server | .com-এর TLD সার্ভার কোথায়? |
| ২ | TLD Server | example.com-এর Authoritative সার্ভার কোথায়? |
| ৩ | Authoritative Server | www.example.com-এর IP কত? |
৩. উত্তর Cache করে রাখে
চূড়ান্ত IP পেলে সেটি নির্দিষ্ট সময় (TTL) পর্যন্ত Cache-এ সংরক্ষণ করে। পরবর্তীতে একই প্রশ্ন এলে সব ধাপ না ঘুরে সরাসরি Cache থেকেই উত্তর দেয় — এতে সময় ও ব্যান্ডউইথ দুটোই বাঁচে।
🔄 Describe the difference between an Iterative and a Recursive DNS query.
DNS রেজোলিউশনে দুটি ভিন্ন পদ্ধতিতে প্রশ্ন করা যায় — Recursive এবং Iterative। মূল পার্থক্য হলো কে কাজটা করে।
Recursive Query — "তুমিই খুঁজে দাও"
এখানে ক্লায়েন্ট Resolver-কে বলে: "আমি শুধু চূড়ান্ত উত্তর চাই, বাকিটা তুমি সামলাও।"
Resolver তখন নিজেই Root → TLD → Authoritative সার্ভারে গিয়ে পুরো কাজ শেষ করে ক্লায়েন্টকে শুধু IP ফেরত দেয়।
Client ──► Resolver ──► Root Server
◄──
──► TLD Server
◄──
──► Authoritative Server
◄──
Client ◄── Resolver (চূড়ান্ত IP)
ক্লায়েন্ট একটাই প্রশ্ন করে, একটাই উত্তর পায়। মাঝের সব ঝামেলা Resolver-এর।
Iterative Query — "যতটুকু জানো বলো"
এখানে Resolver প্রতিটি সার্ভারকে জিজ্ঞেস করে, আর সার্ভার সম্পূর্ণ উত্তর না দিয়ে বলে: "আমি জানি না, তবে এই সার্ভারকে জিজ্ঞেস করো।"
Resolver নিজেই পর্যায়ক্রমে এগিয়ে যায়।
Resolver ──► Root Server
◄── "জানি না, TLD-কে জিজ্ঞেস করো"
Resolver ──► TLD Server
◄── "জানি না, Authoritative-কে জিজ্ঞেস করো"
Resolver ──► Authoritative Server
◄── "IP হলো 93.184.216.34" ✅
প্রতিটি সার্ভার শুধু পরের ঠিকানা দেয় — চূড়ান্ত উত্তর নয়।
👣 Can you walk through a full DNS resolution step by step?
ধরা যাক একজন ইউজার example.com ভিজিট করতে চাইছে:
- 💾 Local Cache Check: প্রথমে ব্রাউজার এবং ওএস (OS) তাদের নিজেদের ক্যাশ চেক করবে। না পেলে রিকোয়েস্ট যাবে ISP-এর Recursive Resolver-এর কাছে।
- 🌐 Recursive Resolver to Root Server: রিসলভারের ক্যাশেও উত্তর না থাকলে, সে প্রথমে একটি গ্লোবাল Root DNS Server-কে প্রশ্ন করবে।
- 🏷️ Root to TLD Server: রুট সার্ভার আইপি জানে না, কিন্তু সে
.com-এর দায়িত্বে থাকা TLD (Top-Level Domain) Server-এর ঠিকানা বলে দেবে। - 🏢 Resolver to TLD Server: রিসলভার এবার TLD সার্ভারকে প্রশ্ন করবে। TLD সার্ভার
example.com-এর ডোমেইন প্রোপাইডার বা Authoritative Name Server-এর ঠিকানা বলে দেবে। - 🛡️ Resolver to Authoritative Server: রিসলভার এবার অথরিটেটিভ সার্ভারকে প্রশ্ন করবে। এই সার্ভার তার ডেটাবেস থেকে
example.com-এর আইপি অ্যাড্রেসটি রিসলভারকে দেবে। - ✅ Return to User: রিসলভার আইপিটি পেয়ে ব্রাউজারকে রিটার্ন করবে এবং ভবিষ্যতের জন্য নিজের কাছে ক্যাশ করে রাখবে।
10. What are the types of DNS records (A, CNAME, MX, and more)?
DNS Record হলো DNS ডেটাবেজে সংরক্ষিত নির্দেশিকা, যা বলে দেয় একটি ডোমেইনের সাথে কোন IP বা সার্ভার যুক্ত। প্রতিটি রেকর্ডের আলাদা উদ্দেশ্য আছে।
A Record — Address Record
একটি ডোমেইনকে IPv4 ঠিকানার সাথে যুক্ত করে। সবচেয়ে মৌলিক এবং বহুল ব্যবহৃত রেকর্ড।
example.com → 93.184.216.34
ব্রাউজারে ডোমেইন লিখলে শেষ পর্যন্ত এই রেকর্ডই কাজে আসে।
AAAA Record — IPv6 Address Record
A Record-এর মতোই, তবে IPv6 ঠিকানার জন্য।
example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME Record — Canonical Name Record
একটি ডোমেইনকে অন্য একটি ডোমেইনের দিকে নির্দেশ করে (IP-র দিকে নয়)।
www.example.com → example.com
blog.example.com → example.com
একটি মূল ডোমেইনের একাধিক Alias তৈরি করতে ব্যবহার হয়। CNAME কখনো সরাসরি IP ধরে না।
MX Record — Mail Exchange Record
ডোমেইনের ইমেইল কোন সার্ভারে যাবে তা নির্ধারণ করে। Priority নম্বর দিয়ে কোন সার্ভার আগে ব্যবহার হবে তা ঠিক করা যায়।
example.com → Priority 10 → mail1.example.com
example.com → Priority 20 → mail2.example.com (backup)
Priority সংখ্যা যত কম, সার্ভার তত বেশি অগ্রাধিকার পায়।
TXT Record — Text Record
ডোমেইন সম্পর্কে যেকোনো টেক্সট তথ্য সংরক্ষণ করে। মূলত যাচাইকরণ ও নিরাপত্তার কাজে ব্যবহৃত হয়।
example.com → "v=spf1 include:_spf.google.com ~all"
সাধ ারণ ব্যবহার:
| উদ্দেশ্য | উদাহরণ |
|---|---|
| SPF | ইমেইল স্প্যাম রোধ |
| DKIM | ইমেইল সত্যতা যাচাই |
| Domain Verification | Google, Facebook সাইট যাচাই |
NS Record — Name Server Record
ডোমেইনের জন্য কোন Authoritative Name Server দায়িত্বপ্রাপ্ত তা জানায়।
example.com → ns1.hostingprovider.com
example.com → ns2.hostingprovider.com
ডোমেইন কিনলে এই রেকর্ড দিয়েই DNS কোথায় পরিচালিত হবে তা ঠিক করা হয়।
PTR Record — Pointer Record
A Record-এর বিপরীত কাজ করে — IP ঠিকানা থেকে ডোমেইন নাম খোঁজে বের করে। এটিকে Reverse DNS-ও বলা হয়।
93.184.216.34 → example.com
ইমেইল সার্ভার যাচাই এবং নেটওয়ার্ক ট্রাবলশুটিংয়ে কাজে আসে।
SOA Record — Start of Authority Record
একটি DNS Zone-এর প্রাথমিক তথ্য ধারণ করে। প্রতিটি Zone-এ একটিমাত্র SOA Record থাকে।
ধারণ করে: Primary Name Server, Admin ইমেইল, Serial Number, Refresh/Retry/Expire সময়।
SRV Record — Service Record
নির্দিষ্ট সার্ভিসের (যেমন VoIP, গেমিং) হোস্ট ও পোর্ট নম্বর নির্ধারণ করে।
_sip._tcp.example.com → Priority 10, Port 5060, sip.example.com
🔢 What is the difference between an A record and an AAAA record?
| রেকর্ড | 🔹 IPv4 (A Record) | 🔹 IPv6 (AAAA Record) |
|---|---|---|
| সংজ্ঞা | ডোমেইন নেমকে 32-bit IPv4 অ্যাড্রেসের সাথে যুক্ত করে। | ডোমেইন নেমকে 128-bit IPv6 অ্যাড্রেসের সাথে যুক্ত করে। |
| উদাহরণ | 192.168.1.1 | 2001:0db8::8a2e:0370:7334 |
🔙 What is a PTR record and when is it used?
PTR (Pointer) Record হলো A Record-এর ঠিক উল্টো। এটি একটি আইপি অ্যাড্রেসকে ডোমেইন নেমের সাথে যুক্ত করে এবং Reverse DNS Lookup-এর কাজে ব্যবহৃত হয়।
- ব্যবহার: মূলত অ্যান্টি-স্প্যাম ভেরিফিকেশনে এটি বেশি ব্যবহৃত হয়। ইমেইল রিসিভিং সার্ভার চেক করে যে আইপি থেকে ইমেইল এসেছে, সেই আইপির পিটিআর রেকর্ডে ডোমেইনটি উল্লেখ আছে কি না, যাতে স্প্যামারদের ব্লক করা যায়।
📄 What is a TXT record used for in backend configurations?
TXT (Text) Record মূলত ডোমেইনের সাথে সম্পর্কিত কোনো টেক্সট বা মেশিন-রিডেবল ডেটা স্টোর করতে ব্যবহৃত হয়। ব্যাকএন্ড এবং ডেভপ্সে এর ব্যাপক ব্যবহার রয়েছে:
- Domain Verification: Google Workspace, Office 365, বা AWS-এর মতো সার্ভিস ভেরিফাই করতে যে আপনি ডোমেইনের মালিক।
- Email Security: SPF, DKIM, এবং DMARC পলিসি সেট করতে, যা ইমে ইল স্পুফিং রোধ করে।
🔀 When would you use an ALIAS record instead of a CNAME?
- CNAME-এর সীমাবদ্ধতা: DNS রুলস অনুযায়ী, রুট বা এপেক্স ডোমেইনে (যেমন শুধু
example.com) কোনো CNAME রেকর্ড বসানো যায় না, CNAME শুধু সাবডোমেইনে (যেমনwww.example.com) ব্যবহার করা যায়। - ALIAS-এর সুবিধা: ALIAS বা ANAME রেকর্ড এই সীমাবদ্ধতা দূর করে। এটি রুট ডোমেইনেই বসানো যায় এবং ব্যাকএন্ডে এটি CNAME এর মতই আরেকটি ডোমেইন বা সার্ভিসকে (যেমন AWS CloudFront, Heroku) পয়েন্ট করে, কিন্তু ক্লায়েন্ট যখন রিকোয়েস্ট করে তখন এটি ফাইনাল IP অ্যাড্রেসটাই রিটার্ন করে (যেন এটি একটি A রেকর্ড)।
11. What is the DNS hierarchy (Root DNS servers, TLDs, and authoritative DNS servers)?
DNS একটি Tree-shaped হায়ারার্কি অনুসরণ করে। একদম উপরে Root, তারপর TLD, তারপর Authoritative — এভাবে ধাপে ধাপে নিচে নামে।
Root DNS Server
DNS হায়ারার্কির একদম শীর্ষে অবস্থান। এটিকে . (dot) দিয়ে প্রকাশ করা হয়। বিশ্বে মাত্র ১৩টি Root Server cluster আছে (A থেকে M পর্যন্ত), যদিও আসল সার্ভারের সংখ্যা ১০০০+।
এটি কোনো IP জানে না — শুধু জানে কোন TLD-র দায়িত্ব কোন সার্ভারের।
প্রশ্ন: "google.com কোথায়?"
উত্তর: "জানি না, .com TLD সার্ভারকে জিজ্ঞেস করো → 192.5.6.30"
TLD Server
TLD মানে Top-Level Domain। Root-এর নিচের স্তর।
| TLD ধরন | উদাহরণ | পরিচালক |
|---|---|---|
| Generic (gTLD) | .com, .org, .net | ICANN |
| Country Code (ccTLD) | .bd, .uk, .jp | সংশ্লিষ্ট দেশ |
| Sponsored (sTLD) | .edu, .gov, .mil | নির্দিষ্ট সংস্থা |
| New gTLD | .app, .shop, .xyz | বেসরকারি প্রতিষ্ঠান |
TLD সার্ভারও IP জানে না — শুধু জানে কোন ডোমেইনের Authoritative সার্ভার কোথায়।
প্রশ্ন: "google.com কোথায়?"
উত্তর: "জানি না, এর Authoritative সার্ভার → ns1.google.com"
Authoritative DNS Server
এটিই DNS হায়ারার্কির চূড়ান্ত উত্তরদাতা। কোনো ডোমেইনের সব DNS Record এখানেই সংরক্ষিত থাকে।
প্রশ্ন: "google.com-এর IP কত?"
উত্তর: "142.250.185.46" ✅ ← চূড়ান্ত উত্তর
দুই ধরনের Authoritative Server:
Primary — মূল সার্ভার, যেখানে রেকর্ড সরাসরি সম্পাদনা হয়।
Secondary — Primary-র কপি, Redundancy ও Load Balancing-এর জন্য।
ব্রাউজার → Resolver → Root ("কোথায়?")
↓
TLD Server ("কোথায়?")
↓
Authoritative Server ("এই নাও IP") ✅
↓
Resolver → ব্রাউজার
💡 মূল কথা: Root জানে শুধু TLD-কে, TLD জানে শুধু Authoritative-কে, আর Authoritative জানে আসল উত্তর। এই তিন স্তরের মিলিত কাজেই DNS রেজোলিউশন সম্পন্ন হয়।
🌍 How many root DNS servers exist, and how are they managed?
এখানে একটি গুরুত্বপূর্ণ পার্থক্য বোঝা দরকার:
| বিষয় | সংখ্যা |
|---|---|
| Root Server পরিচয় (A–M) | ১৩টি |
| আসল ভৌগোলিক সার্ভার | ১০০০+ (সারা বিশ্বে) |
১৩টির বেশি কেন হয় না? কারণ DNS প্রোটোকল UDP packet-এ সর্বোচ্চ ৫১২ bytes ধরে, আর ১৩টি IPv4 ঠিকানাই সেই সীমার মধ্যে ফিট করে।
🌍 Anycast — ১০০০+ সার্ভারের রহস্য
১৩টি পরিচয় থাকলেও প্রতিটি পরিচয়ের পেছনে শত শত ভৌগোলিক সার্ভার আছে — এই কৌশলের নাম Anycast Routing।
তুমি বাংলাদেশ থেকে "F-Root" জিজ্ঞেস করলে
↓
Anycast সবচেয়ে কাছের F-Root সার্ভারে পাঠায়
↓
হয়তো সিঙ্গাপুর বা মুম্বাইয়ের সার্ভার উত্তর দেয়
↓
তুমি জানোই না কোনটি উত্তর দিল ✅
ফলে বিশ্বের যেকোনো প্রান্ত থেকে Root Server দ্রুত ও নির্ভরযোগ্যভাবে পাওয়া যায়।